 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace GestorDeFlotasDesktop.Listado_Estadistico
{
    public partial class ListadoEstadistico : Form
    {

        #region validarCampos

        private int validarCampoNumerico(string campo)
        {

            foreach (char letra in campo)
                if (letra < '0' || letra > '9')
                    return 0;

            return 1;
        }

        public int validarCampos()
        {
            int sinErrores = 1;
            /*************  Validar Campos Obligatorios  *********************/
            if (comboBoxListado.Text == string.Empty)
            {
                ErrorListado.Visible = true;
                ErrorListado.Text = "* Campo Obligatorio";
                sinErrores = 0;
            };
            if (textBoxAnio.Text== string.Empty)
            {
                ErrorAnio.Visible = true;
                ErrorAnio.Text = "* Campo Obligatorio";
                sinErrores = 0;
            };
            if (comboBoxTrimestre.Text == string.Empty)
            {
                ErrorTrimestre.Visible = true;
                ErrorTrimestre.Text = "* Campo Obligatorio";
                sinErrores = 0;
            };
            /*************  Validar Tipo de Datos  *********************/
            if (validarCampoNumerico(textBoxAnio.Text) == 0)
            {
                ErrorAnio.Visible = true;
                ErrorAnio.Text = "Campo Numerico";
                sinErrores = 0;
            }
            return sinErrores;
        }
        #endregion

        public ListadoEstadistico()
        {
            InitializeComponent();
        }

        private void ListadoEstadistico_Load(object sender, EventArgs e)
        {

        }

        private void botonCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        public struct fechas
        {
            public DateTime fecha_inicio;
            public DateTime fecha_fin;
        }

        public fechas datoFechas;

        private void calcularFechas(int anio, string trimestre)
        {
            switch (trimestre)
            {
                case "Enero - Marzo":
                    /* Crear Fechas:
                     *create date time 2008-03-09 16:05:07.123
                    DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);*/
                    datoFechas.fecha_inicio = new DateTime(anio, 01, 01, 00, 00, 00, 000);
                    datoFechas.fecha_fin = new DateTime(anio, 03, 31, 23, 59, 59, 000);
                    break;
                case "Abril - Junio":
                    datoFechas.fecha_inicio = new DateTime(anio, 04, 01, 00, 00, 00, 000);
                    datoFechas.fecha_fin = new DateTime(anio, 06, 30, 23, 59, 59, 000);
                    break;
                case "Julio - Septiembre":
                    datoFechas.fecha_inicio = new DateTime(anio, 07, 01, 00, 00, 00, 000);
                    datoFechas.fecha_fin = new DateTime(anio, 09, 30, 23, 59, 59, 000);
                    break;
                case "Octubre - Diciembre":
                    datoFechas.fecha_inicio = new DateTime(anio, 10, 01, 00, 00, 00, 000);
                    datoFechas.fecha_fin = new DateTime(anio, 12, 31, 23, 59, 59, 000);
                    break;
            }

            //String.Format("{0:d/M/yyyy HH:mm:ss}", datoFechas.fecha_inicio);
            //String.Format("{0:d/M/yyyy HH:mm:ss}", datoFechas.fecha_fin);
            String.Format("{0:d/M/yyyy}", datoFechas.fecha_inicio);
            String.Format("{0:d/M/yyyy}", datoFechas.fecha_fin);
        }

        private void botonBuscar_Click(object sender, EventArgs e)
        {
            //Los Listados estan sin desarrollar//
            if (validarCampos() == 1)
            {
                calcularFechas(Convert.ToInt32(textBoxAnio.Text), comboBoxTrimestre.Text);
                switch (comboBoxListado.Text)
                {
                    case "Choferes con mayor recaudacion":
                        sqlManager.Conectar();
                        dGridResultado.DataSource = sqlManager.ListadoEstadisticoChoferes(datoFechas.fecha_inicio, datoFechas.fecha_fin);
                        sqlManager.Desconectar();
                        break;
                    case "Clientes con mayor consumo":
                        sqlManager.Conectar();
                        dGridResultado.DataSource = sqlManager.ListadoEstadisticoClientes(datoFechas.fecha_inicio, datoFechas.fecha_fin);
                        sqlManager.Desconectar();
                        break;
                    case "Taxis con mayor recaudacion":
                        sqlManager.Conectar();
                        dGridResultado.DataSource = sqlManager.ListadoEstadisticoTaxis(datoFechas.fecha_inicio, datoFechas.fecha_fin);
                        sqlManager.Desconectar();
                        break;
                }
            }
        }

    }
}
